{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![open.svg](images/open.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# MLP实现股价预测"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 逻辑回归模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用于解决分类问题的一种模型。根据数据特征或属性，计算其归属于某一类别的概率P(x)，根据概率数值判断其所属类别。\n",
    "- 主要应用场景：二分类问题"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 逻辑回归数学表达式\n",
    "\n",
    "![logistic_regression formula](images/06_logistic_regression_formula.png)\n",
    "\n",
    "其中，y为类别结果，P为概率，x为特征值，a、b为常量"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型评估回顾\n",
    "\n",
    "- 目的：通过模型评估对比模型表现、确定合适的模型参数（组）\n",
    "- 方法：计算测试数据集预测准确率以评估模型表现"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 皮马印第安人糖尿病数据集"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "基于数据集中包括的某些诊断测量来诊断性地预测患者是否患有糖尿病\n",
    "\n",
    "输入变量包括：独立变量包括患者的怀孕次数，葡萄糖量，血压，皮褶厚度，体重指数，胰岛素水平，糖尿病谱系功能，年龄\n",
    "\n",
    "输出结果：是否患有糖尿病\n",
    "\n",
    "数据来源：[Pima Indians Diabetes dataset](https://www.kaggle.com/uciml/pima-indians-diabetes-database)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**任务:** 通过怀孕次数、胰岛素水平、体重指数、年龄四个特征预测是否患有糖尿病"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 典型的逻辑回归概率分布曲线\n",
    "\n",
    "![unrolled_RNN](images/unrolled_RNN.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基于t时刻及之前数据预测t+1时刻结果（滑动窗口预测）\n",
    "\n",
    "![sliding_window_time_series.svg](images/sliding_window_time_series.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# train LSTM on five years of Google \n",
    "# Supervised Deep Learning\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "\n",
    "# Importing the training set\n",
    "training_set_ori = pd.read_csv(\"transfer_data1.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>x</th>\n",
       "      <th>y</th>\n",
       "      <th>y2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-5.0</td>\n",
       "      <td>25.00</td>\n",
       "      <td>26.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-4.9</td>\n",
       "      <td>24.01</td>\n",
       "      <td>25.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-4.8</td>\n",
       "      <td>23.04</td>\n",
       "      <td>24.44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-4.7</td>\n",
       "      <td>22.09</td>\n",
       "      <td>23.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-4.6</td>\n",
       "      <td>21.16</td>\n",
       "      <td>22.96</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     x      y     y2\n",
       "0 -5.0  25.00  26.00\n",
       "1 -4.9  24.01  25.21\n",
       "2 -4.8  23.04  24.44\n",
       "3 -4.7  22.09  23.69\n",
       "4 -4.6  21.16  22.96"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "training_set_ori.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# visualising the results\n",
    "%matplotlib inline\n",
    "plt.plot(training_set_ori.loc[:,['x']], training_set_ori.loc[:,['y']],color = 'red', label = 'Real Stock Price')\n",
    "plt.title('Stock Price')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_ori = training_set_ori.loc[:,['x']]\n",
    "y_ori = training_set_ori.loc[:,['y']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Feature Scaling + Normalization, since LSTM Several Sigmoid Activation function\n",
    "# Sigmoid 0 and 1, as is the case in Normalization\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "sc_x = MinMaxScaler() # default is 0,1\n",
    "sc_y = MinMaxScaler() # default is 0,1\n",
    "# Fitting to training_set, scale training set, \n",
    "# transform we'll apply normalizationjust need min and max for normalization\n",
    "X_train = sc_x.fit_transform(X_ori)\n",
    "y_train = sc_y.fit_transform(y_ori)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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pE4FeovIW9h2h1tDe73Gzo03wuuvwzvvQA5/LC4ft94a/T7NJk0g7A0tN7169aJRo0YMHDjwgMd79+5Nly5duO666xg9ejR9+/ZlypQpAHz//ff8+9//JjU1lcGDB7NixQo+/vhjlixZQsuWLXnnnXd4/PHH6dixIx988AGXXHIJvXv35t577wXg2muv5f333+eiiy7KMaYOHTrQoUMHAC6//HJat27Nnj176NOnD++++y7Vq1dn/Pjx3H333YwePZrrr7+eZ599ltatWzNgwIAcz3n55Zdz5pln8vnnn9OmTRuuueYamjZtyqOPPsrw4cOZH/r5z507lzFjxvD111+jqpx66qm0bt2aMmXK8NBDD/Hll19SrVo1fv31wGG9gQMHsnXrVsaMGZPnYO97771Hw4YNs+5v2bKFTz/9FOCArrurr76aQYMG0bFjR3bt2sX+/fuZMWMGy5YtY/bs2agqHTp04LPPPqNVq1a5vp7LwxtvwK5d9v5VDGI5JfVNYBZwgohkiEg3EblZRG4OHTIN27d2OfAy0DNWsWRp1Qr+7/+8CykBVa5cmS5duvDMM88c8PisWbO46qqrAHsT/+KLL7Keu+yyy0hNTc263759e0qXLk3Dhg3Zt28f551nk+MaNmzIqlWrAPj444859dRTadiwIR999BGLFy8mP48//jiHHHIIvXr1YunSpXz77becc845NGnShAcffJCMjAy2bt3Kli1baN26dVasOUlLS2Pp0qU88sgjpKSk0KZNG2bOnHnQcV988QUdO3akQoUKVKxYkUsvvZTPP/+cjz76iE6dOlGtWjUADj/88KzveeCBB9iyZQsvvfRSrglhwIABNGnShBEjRjAq7O/kiiuuOOjYbdu2sXbtWjp27AjYgrTy5cszY8YMZsyYQdOmTWnWrBn//e9/WbZsWb4/R5eLUaOgaVNoVjyz9mPWUlDVzvk8r9gm6MVHBLp1s1lI338P9eoV68snvAg+0cfSrbfeSrNmzbj++utzPSb8za5ChQoHPFe2bFkAUlJSKF26dNaxKSkp7N27l127dtGzZ0/S09OpVasWgwcPzncu/cyZM3n77bf57LPPAFuYdfLJJx80SLtly5aIp2GWLVuW9u3b0759e4488kimTJlCmzZtDjgmt73VVTXX12nRogVz587l119/PSBZhBsyZAidOnU66PHs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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(X_train,y_train, color = 'red', label = 'Normalized Stock Price')\n",
    "plt.title('Normalized Stock Price')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Normalized Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(101, 1) (101, 1)\n"
     ]
    }
   ],
   "source": [
    "print(X_train.shape,y_train.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense_13 (Dense)             (None, 50)                100       \n",
      "_________________________________________________________________\n",
      "dense_14 (Dense)             (None, 50)                2550      \n",
      "_________________________________________________________________\n",
      "dense_15 (Dense)             (None, 1)                 51        \n",
      "=================================================================\n",
      "Total params: 2,701\n",
      "Trainable params: 2,701\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "#set configurable parameters number of parameters(input_size),number of lables(num_labels),batch size,number of hidden units, dropout\n",
    "input_size = X_train.shape[1]\n",
    "num_labels = y_train.shape[1]\n",
    "batch_size = 101\n",
    "hidden_units = 50\n",
    "\n",
    "#set up the model\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense,Activation\n",
    "\n",
    "model = Sequential()\n",
    "model.add(Dense(hidden_units,input_dim=input_size,activation='relu'))\n",
    "model.add(Dense(hidden_units,activation='sigmoid'))\n",
    "model.add(Dense(num_labels,activation='linear'))\n",
    "model.summary()  \n",
    "\n",
    "\n",
    "model.compile(optimizer = 'adam', loss = 'mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0044\n",
      "Epoch 2/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0043\n",
      "Epoch 3/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0042\n",
      "Epoch 4/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0041\n",
      "Epoch 5/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0041\n",
      "Epoch 6/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0040\n",
      "Epoch 7/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0039\n",
      "Epoch 8/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0038\n",
      "Epoch 9/1000\n",
      "101/101 [==============================] - 0s 35us/step - loss: 0.0037\n",
      "Epoch 10/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0037\n",
      "Epoch 11/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0036\n",
      "Epoch 12/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0035\n",
      "Epoch 13/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0035\n",
      "Epoch 14/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0034\n",
      "Epoch 15/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0033\n",
      "Epoch 16/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0033\n",
      "Epoch 17/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 0.0032\n",
      "Epoch 18/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0031\n",
      "Epoch 19/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0031\n",
      "Epoch 20/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0030\n",
      "Epoch 21/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0030\n",
      "Epoch 22/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0029\n",
      "Epoch 23/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0029\n",
      "Epoch 24/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0028\n",
      "Epoch 25/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0028\n",
      "Epoch 26/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0027\n",
      "Epoch 27/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0027\n",
      "Epoch 28/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0026\n",
      "Epoch 29/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0026\n",
      "Epoch 30/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0025\n",
      "Epoch 31/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0025\n",
      "Epoch 32/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0024\n",
      "Epoch 33/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0024\n",
      "Epoch 34/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0024\n",
      "Epoch 35/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0023\n",
      "Epoch 36/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0023\n",
      "Epoch 37/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0023\n",
      "Epoch 38/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0022\n",
      "Epoch 39/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0022\n",
      "Epoch 40/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0021\n",
      "Epoch 41/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0021\n",
      "Epoch 42/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0021\n",
      "Epoch 43/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0020\n",
      "Epoch 44/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0020\n",
      "Epoch 45/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0020\n",
      "Epoch 46/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0019\n",
      "Epoch 47/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0019\n",
      "Epoch 48/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0019\n",
      "Epoch 49/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0019\n",
      "Epoch 50/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0018\n",
      "Epoch 51/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0018\n",
      "Epoch 52/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0018\n",
      "Epoch 53/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0017\n",
      "Epoch 54/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 0.0017\n",
      "Epoch 55/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0017\n",
      "Epoch 56/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0017\n",
      "Epoch 57/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0016\n",
      "Epoch 58/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0016\n",
      "Epoch 59/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0016\n",
      "Epoch 60/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0016\n",
      "Epoch 61/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0015\n",
      "Epoch 62/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0015\n",
      "Epoch 63/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0015\n",
      "Epoch 64/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0015\n",
      "Epoch 65/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0014\n",
      "Epoch 66/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0014\n",
      "Epoch 67/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0014\n",
      "Epoch 68/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0014\n",
      "Epoch 69/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0014\n",
      "Epoch 70/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0013\n",
      "Epoch 71/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0013\n",
      "Epoch 72/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0013\n",
      "Epoch 73/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0013\n",
      "Epoch 74/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0013\n",
      "Epoch 75/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0013\n",
      "Epoch 76/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0012\n",
      "Epoch 77/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0012\n",
      "Epoch 78/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0012\n",
      "Epoch 79/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0012\n",
      "Epoch 80/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0012\n",
      "Epoch 81/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0012\n",
      "Epoch 82/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0011\n",
      "Epoch 83/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0011\n",
      "Epoch 84/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0011\n",
      "Epoch 85/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0011\n",
      "Epoch 86/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0011\n",
      "Epoch 87/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0011\n",
      "Epoch 88/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0010\n",
      "Epoch 89/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0010\n",
      "Epoch 90/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0010\n",
      "Epoch 91/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0010\n",
      "Epoch 92/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.9469e-04\n",
      "Epoch 93/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.8174e-04\n",
      "Epoch 94/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 9.6902e-04\n",
      "Epoch 95/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 9.5645e-04\n",
      "Epoch 96/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.4419e-04\n",
      "Epoch 97/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.3205e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 98/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 9.2012e-04\n",
      "Epoch 99/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.0846e-04\n",
      "Epoch 100/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.9699e-04\n",
      "Epoch 101/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.8576e-04\n",
      "Epoch 102/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.7467e-04\n",
      "Epoch 103/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 8.6375e-04\n",
      "Epoch 104/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.5311e-04\n",
      "Epoch 105/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 8.4256e-04\n",
      "Epoch 106/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 8.3230e-04\n",
      "Epoch 107/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.2208e-04\n",
      "Epoch 108/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 8.1206e-04\n",
      "Epoch 109/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 8.0221e-04\n",
      "Epoch 110/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.9252e-04\n",
      "Epoch 111/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 7.8302e-04\n",
      "Epoch 112/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.7364e-04\n",
      "Epoch 113/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 7.6439e-04\n",
      "Epoch 114/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 7.5524e-04\n",
      "Epoch 115/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.4628e-04\n",
      "Epoch 116/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.3752e-04\n",
      "Epoch 117/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.2883e-04\n",
      "Epoch 118/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.2033e-04\n",
      "Epoch 119/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 7.1196e-04\n",
      "Epoch 120/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.0370e-04\n",
      "Epoch 121/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.9561e-04\n",
      "Epoch 122/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.8762e-04\n",
      "Epoch 123/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.7973e-04\n",
      "Epoch 124/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.7199e-04\n",
      "Epoch 125/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.6434e-04\n",
      "Epoch 126/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.5680e-04\n",
      "Epoch 127/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.4937e-04\n",
      "Epoch 128/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.4205e-04\n",
      "Epoch 129/1000\n",
      "101/101 [==============================] - 0s 18us/step - loss: 6.3481e-04\n",
      "Epoch 130/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.2771e-04\n",
      "Epoch 131/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.2071e-04\n",
      "Epoch 132/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.1386e-04\n",
      "Epoch 133/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.0701e-04\n",
      "Epoch 134/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.0034e-04\n",
      "Epoch 135/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.9379e-04\n",
      "Epoch 136/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.8732e-04\n",
      "Epoch 137/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.8097e-04\n",
      "Epoch 138/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.7477e-04\n",
      "Epoch 139/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.6850e-04\n",
      "Epoch 140/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.6244e-04\n",
      "Epoch 141/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.5642e-04\n",
      "Epoch 142/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.5050e-04\n",
      "Epoch 143/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.4469e-04\n",
      "Epoch 144/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.3895e-04\n",
      "Epoch 145/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.3329e-04\n",
      "Epoch 146/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.2772e-04\n",
      "Epoch 147/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.2219e-04\n",
      "Epoch 148/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1675e-04\n",
      "Epoch 149/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1143e-04\n",
      "Epoch 150/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.0614e-04\n",
      "Epoch 151/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.0092e-04\n",
      "Epoch 152/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.9580e-04\n",
      "Epoch 153/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.9077e-04\n",
      "Epoch 154/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.8579e-04\n",
      "Epoch 155/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.8088e-04\n",
      "Epoch 156/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.7602e-04\n",
      "Epoch 157/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.7125e-04\n",
      "Epoch 158/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.6653e-04\n",
      "Epoch 159/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.6189e-04\n",
      "Epoch 160/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.5731e-04\n",
      "Epoch 161/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.5277e-04\n",
      "Epoch 162/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.4831e-04\n",
      "Epoch 163/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.4393e-04\n",
      "Epoch 164/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.3962e-04\n",
      "Epoch 165/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.3533e-04\n",
      "Epoch 166/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 4.3113e-04\n",
      "Epoch 167/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.2697e-04\n",
      "Epoch 168/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.2288e-04\n",
      "Epoch 169/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.1885e-04\n",
      "Epoch 170/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 4.1489e-04\n",
      "Epoch 171/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.1098e-04\n",
      "Epoch 172/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 4.0709e-04\n",
      "Epoch 173/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.0323e-04\n",
      "Epoch 174/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.9943e-04\n",
      "Epoch 175/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.9568e-04\n",
      "Epoch 176/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.9196e-04\n",
      "Epoch 177/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.8830e-04\n",
      "Epoch 178/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.8468e-04\n",
      "Epoch 179/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.8110e-04\n",
      "Epoch 180/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.7759e-04\n",
      "Epoch 181/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.7413e-04\n",
      "Epoch 182/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.7073e-04\n",
      "Epoch 183/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6731e-04\n",
      "Epoch 184/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.6395e-04\n",
      "Epoch 185/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6068e-04\n",
      "Epoch 186/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.5744e-04\n",
      "Epoch 187/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.5421e-04\n",
      "Epoch 188/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.5106e-04\n",
      "Epoch 189/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.4797e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 190/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.4495e-04\n",
      "Epoch 191/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4187e-04\n",
      "Epoch 192/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.3883e-04\n",
      "Epoch 193/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.3592e-04\n",
      "Epoch 194/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.3305e-04\n",
      "Epoch 195/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.3017e-04\n",
      "Epoch 196/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.2728e-04\n",
      "Epoch 197/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.2449e-04\n",
      "Epoch 198/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.2177e-04\n",
      "Epoch 199/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.1904e-04\n",
      "Epoch 200/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1632e-04\n",
      "Epoch 201/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1361e-04\n",
      "Epoch 202/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1096e-04\n",
      "Epoch 203/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0834e-04\n",
      "Epoch 204/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.0574e-04\n",
      "Epoch 205/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.0318e-04\n",
      "Epoch 206/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0063e-04\n",
      "Epoch 207/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.9811e-04\n",
      "Epoch 208/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9564e-04\n",
      "Epoch 209/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9319e-04\n",
      "Epoch 210/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9077e-04\n",
      "Epoch 211/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8838e-04\n",
      "Epoch 212/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8602e-04\n",
      "Epoch 213/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8369e-04\n",
      "Epoch 214/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.8139e-04\n",
      "Epoch 215/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 2.7912e-04\n",
      "Epoch 216/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7688e-04\n",
      "Epoch 217/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7466e-04\n",
      "Epoch 218/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7247e-04\n",
      "Epoch 219/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7031e-04\n",
      "Epoch 220/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6816e-04\n",
      "Epoch 221/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6604e-04\n",
      "Epoch 222/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.6395e-04\n",
      "Epoch 223/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6188e-04\n",
      "Epoch 224/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.5984e-04\n",
      "Epoch 225/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5778e-04\n",
      "Epoch 226/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.5573e-04\n",
      "Epoch 227/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.5370e-04\n",
      "Epoch 228/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5169e-04\n",
      "Epoch 229/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.4968e-04\n",
      "Epoch 230/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.4771e-04\n",
      "Epoch 231/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.4576e-04\n",
      "Epoch 232/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.4384e-04\n",
      "Epoch 233/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.4194e-04\n",
      "Epoch 234/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.4005e-04\n",
      "Epoch 235/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.3819e-04\n",
      "Epoch 236/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.3634e-04\n",
      "Epoch 237/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3451e-04\n",
      "Epoch 238/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3270e-04\n",
      "Epoch 239/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3092e-04\n",
      "Epoch 240/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2915e-04\n",
      "Epoch 241/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2742e-04\n",
      "Epoch 242/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.2569e-04\n",
      "Epoch 243/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2399e-04\n",
      "Epoch 244/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.2232e-04\n",
      "Epoch 245/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.2065e-04\n",
      "Epoch 246/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.1902e-04\n",
      "Epoch 247/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1740e-04\n",
      "Epoch 248/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.1580e-04\n",
      "Epoch 249/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1422e-04\n",
      "Epoch 250/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.1265e-04\n",
      "Epoch 251/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1107e-04\n",
      "Epoch 252/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0953e-04\n",
      "Epoch 253/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0798e-04\n",
      "Epoch 254/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0645e-04\n",
      "Epoch 255/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.0494e-04\n",
      "Epoch 256/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0343e-04\n",
      "Epoch 257/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0193e-04\n",
      "Epoch 258/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.0046e-04\n",
      "Epoch 259/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.9900e-04\n",
      "Epoch 260/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.9757e-04\n",
      "Epoch 261/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.9614e-04\n",
      "Epoch 262/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.9474e-04\n",
      "Epoch 263/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.9334e-04\n",
      "Epoch 264/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.9196e-04\n",
      "Epoch 265/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.9060e-04\n",
      "Epoch 266/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.8925e-04\n",
      "Epoch 267/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.8792e-04\n",
      "Epoch 268/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.8660e-04\n",
      "Epoch 269/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.8529e-04\n",
      "Epoch 270/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.8400e-04\n",
      "Epoch 271/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.8272e-04\n",
      "Epoch 272/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.8146e-04\n",
      "Epoch 273/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.8021e-04\n",
      "Epoch 274/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.7898e-04\n",
      "Epoch 275/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.7776e-04\n",
      "Epoch 276/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.7654e-04\n",
      "Epoch 277/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.7533e-04\n",
      "Epoch 278/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.7413e-04\n",
      "Epoch 279/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.7293e-04\n",
      "Epoch 280/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.7175e-04\n",
      "Epoch 281/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.7059e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 282/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.6943e-04\n",
      "Epoch 283/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.6828e-04\n",
      "Epoch 284/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.6715e-04\n",
      "Epoch 285/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.6602e-04\n",
      "Epoch 286/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.6491e-04\n",
      "Epoch 287/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.6381e-04\n",
      "Epoch 288/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.6272e-04\n",
      "Epoch 289/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.6164e-04\n",
      "Epoch 290/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.6058e-04\n",
      "Epoch 291/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.5953e-04\n",
      "Epoch 292/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.5849e-04\n",
      "Epoch 293/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.5747e-04\n",
      "Epoch 294/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.5647e-04\n",
      "Epoch 295/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.5549e-04\n",
      "Epoch 296/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.5455e-04\n",
      "Epoch 297/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.5371e-04\n",
      "Epoch 298/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.5299e-04\n",
      "Epoch 299/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.5245e-04\n",
      "Epoch 300/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.5218e-04\n",
      "Epoch 301/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.5228e-04\n",
      "Epoch 302/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.5283e-04\n",
      "Epoch 303/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.5359e-04\n",
      "Epoch 304/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.5404e-04\n",
      "Epoch 305/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.5309e-04\n",
      "Epoch 306/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.5031e-04\n",
      "Epoch 307/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.4642e-04\n",
      "Epoch 308/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.4336e-04\n",
      "Epoch 309/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.4230e-04\n",
      "Epoch 310/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.4281e-04\n",
      "Epoch 311/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.4341e-04\n",
      "Epoch 312/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.4275e-04\n",
      "Epoch 313/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.4071e-04\n",
      "Epoch 314/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3836e-04\n",
      "Epoch 315/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3691e-04\n",
      "Epoch 316/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3661e-04\n",
      "Epoch 317/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.3668e-04\n",
      "Epoch 318/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3620e-04\n",
      "Epoch 319/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3488e-04\n",
      "Epoch 320/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3323e-04\n",
      "Epoch 321/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3201e-04\n",
      "Epoch 322/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3146e-04\n",
      "Epoch 323/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3119e-04\n",
      "Epoch 324/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3064e-04\n",
      "Epoch 325/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.2963e-04\n",
      "Epoch 326/1000\n",
      "101/101 [==============================] - 0s 25us/step - loss: 1.2840e-04\n",
      "Epoch 327/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.2736e-04\n",
      "Epoch 328/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.2668e-04\n",
      "Epoch 329/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.2620e-04\n",
      "Epoch 330/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.2563e-04\n",
      "Epoch 331/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.2482e-04\n",
      "Epoch 332/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 1.2385e-04\n",
      "Epoch 333/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.2294e-04\n",
      "Epoch 334/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.2220e-04\n",
      "Epoch 335/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.2160e-04\n",
      "Epoch 336/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.2102e-04\n",
      "Epoch 337/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 1.2034e-04\n",
      "Epoch 338/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1956e-04\n",
      "Epoch 339/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1875e-04\n",
      "Epoch 340/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1800e-04\n",
      "Epoch 341/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1733e-04\n",
      "Epoch 342/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.1672e-04\n",
      "Epoch 343/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1611e-04\n",
      "Epoch 344/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1546e-04\n",
      "Epoch 345/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1477e-04\n",
      "Epoch 346/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.1406e-04\n",
      "Epoch 347/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1336e-04\n",
      "Epoch 348/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1271e-04\n",
      "Epoch 349/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1209e-04\n",
      "Epoch 350/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1149e-04\n",
      "Epoch 351/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1089e-04\n",
      "Epoch 352/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1027e-04\n",
      "Epoch 353/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.0963e-04\n",
      "Epoch 354/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.0900e-04\n",
      "Epoch 355/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.0837e-04\n",
      "Epoch 356/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.0776e-04\n",
      "Epoch 357/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.0717e-04\n",
      "Epoch 358/1000\n",
      "101/101 [==============================] - 0s 33us/step - loss: 1.0659e-04\n",
      "Epoch 359/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.0602e-04\n",
      "Epoch 360/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.0546e-04\n",
      "Epoch 361/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.0488e-04\n",
      "Epoch 362/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.0431e-04\n",
      "Epoch 363/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.0374e-04\n",
      "Epoch 364/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.0318e-04\n",
      "Epoch 365/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.0262e-04\n",
      "Epoch 366/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.0207e-04\n",
      "Epoch 367/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.0153e-04\n",
      "Epoch 368/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.0099e-04\n",
      "Epoch 369/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 1.0046e-04\n",
      "Epoch 370/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 9.9932e-05\n",
      "Epoch 371/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.9410e-05\n",
      "Epoch 372/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 9.8892e-05\n",
      "Epoch 373/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.8377e-05\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 374/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 9.7865e-05\n",
      "Epoch 375/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.7358e-05\n",
      "Epoch 376/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 9.6854e-05\n",
      "Epoch 377/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 9.6355e-05\n",
      "Epoch 378/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.5860e-05\n",
      "Epoch 379/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.5370e-05\n",
      "Epoch 380/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.4884e-05\n",
      "Epoch 381/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 9.4402e-05\n",
      "Epoch 382/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 9.3925e-05\n",
      "Epoch 383/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.3452e-05\n",
      "Epoch 384/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 9.2984e-05\n",
      "Epoch 385/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.2521e-05\n",
      "Epoch 386/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 9.2061e-05\n",
      "Epoch 387/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.1607e-05\n",
      "Epoch 388/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.1156e-05\n",
      "Epoch 389/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 9.0711e-05\n",
      "Epoch 390/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.0270e-05\n",
      "Epoch 391/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.9834e-05\n",
      "Epoch 392/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.9405e-05\n",
      "Epoch 393/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.8983e-05\n",
      "Epoch 394/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.8569e-05\n",
      "Epoch 395/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.8160e-05\n",
      "Epoch 396/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 8.7768e-05\n",
      "Epoch 397/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.7402e-05\n",
      "Epoch 398/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.7067e-05\n",
      "Epoch 399/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.6791e-05\n",
      "Epoch 400/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.6621e-05\n",
      "Epoch 401/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.6629e-05\n",
      "Epoch 402/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 8.6929e-05\n",
      "Epoch 403/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 8.7687e-05\n",
      "Epoch 404/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.9099e-05\n",
      "Epoch 405/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 9.1299e-05\n",
      "Epoch 406/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.3993e-05\n",
      "Epoch 407/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.6144e-05\n",
      "Epoch 408/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.5684e-05\n",
      "Epoch 409/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 9.1680e-05\n",
      "Epoch 410/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.5735e-05\n",
      "Epoch 411/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.1711e-05\n",
      "Epoch 412/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 8.1714e-05\n",
      "Epoch 413/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 8.4307e-05\n",
      "Epoch 414/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 8.6216e-05\n",
      "Epoch 415/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.5169e-05\n",
      "Epoch 416/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.1936e-05\n",
      "Epoch 417/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.9299e-05\n",
      "Epoch 418/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.9099e-05\n",
      "Epoch 419/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 8.0488e-05\n",
      "Epoch 420/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 8.1248e-05\n",
      "Epoch 421/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.0204e-05\n",
      "Epoch 422/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.8172e-05\n",
      "Epoch 423/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 7.6878e-05\n",
      "Epoch 424/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.6994e-05\n",
      "Epoch 425/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.7663e-05\n",
      "Epoch 426/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.7653e-05\n",
      "Epoch 427/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.6643e-05\n",
      "Epoch 428/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 7.5393e-05\n",
      "Epoch 429/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.4794e-05\n",
      "Epoch 430/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.4915e-05\n",
      "Epoch 431/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.5098e-05\n",
      "Epoch 432/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.4753e-05\n",
      "Epoch 433/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 7.3934e-05\n",
      "Epoch 434/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 7.3152e-05\n",
      "Epoch 435/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.2793e-05\n",
      "Epoch 436/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 7.2766e-05\n",
      "Epoch 437/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 7.2680e-05\n",
      "Epoch 438/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.2290e-05\n",
      "Epoch 439/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.1685e-05\n",
      "Epoch 440/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 7.1141e-05\n",
      "Epoch 441/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.0830e-05\n",
      "Epoch 442/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.0680e-05\n",
      "Epoch 443/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 7.0497e-05\n",
      "Epoch 444/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 7.0157e-05\n",
      "Epoch 445/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.9703e-05\n",
      "Epoch 446/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.9273e-05\n",
      "Epoch 447/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.8958e-05\n",
      "Epoch 448/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.8740e-05\n",
      "Epoch 449/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.8527e-05\n",
      "Epoch 450/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.8244e-05\n",
      "Epoch 451/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.7892e-05\n",
      "Epoch 452/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.7527e-05\n",
      "Epoch 453/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.7208e-05\n",
      "Epoch 454/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.6948e-05\n",
      "Epoch 455/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.6716e-05\n",
      "Epoch 456/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.6469e-05\n",
      "Epoch 457/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.6187e-05\n",
      "Epoch 458/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.5879e-05\n",
      "Epoch 459/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.5573e-05\n",
      "Epoch 460/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.5289e-05\n",
      "Epoch 461/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.5028e-05\n",
      "Epoch 462/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.4780e-05\n",
      "Epoch 463/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.4527e-05\n",
      "Epoch 464/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.4261e-05\n",
      "Epoch 465/1000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "101/101 [==============================] - 0s 30us/step - loss: 6.3982e-05\n",
      "Epoch 466/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.3702e-05\n",
      "Epoch 467/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.3429e-05\n",
      "Epoch 468/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.3168e-05\n",
      "Epoch 469/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.2917e-05\n",
      "Epoch 470/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.2671e-05\n",
      "Epoch 471/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.2424e-05\n",
      "Epoch 472/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.2171e-05\n",
      "Epoch 473/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.1916e-05\n",
      "Epoch 474/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.1660e-05\n",
      "Epoch 475/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.1408e-05\n",
      "Epoch 476/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.1161e-05\n",
      "Epoch 477/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.0920e-05\n",
      "Epoch 478/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.0684e-05\n",
      "Epoch 479/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.0449e-05\n",
      "Epoch 480/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.0215e-05\n",
      "Epoch 481/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.9981e-05\n",
      "Epoch 482/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.9747e-05\n",
      "Epoch 483/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.9509e-05\n",
      "Epoch 484/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.9270e-05\n",
      "Epoch 485/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.9031e-05\n",
      "Epoch 486/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.8795e-05\n",
      "Epoch 487/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.8559e-05\n",
      "Epoch 488/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.8326e-05\n",
      "Epoch 489/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.8094e-05\n",
      "Epoch 490/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.7864e-05\n",
      "Epoch 491/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.7635e-05\n",
      "Epoch 492/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.7408e-05\n",
      "Epoch 493/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.7183e-05\n",
      "Epoch 494/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.6960e-05\n",
      "Epoch 495/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.6739e-05\n",
      "Epoch 496/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.6521e-05\n",
      "Epoch 497/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.6305e-05\n",
      "Epoch 498/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.6091e-05\n",
      "Epoch 499/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.5880e-05\n",
      "Epoch 500/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.5671e-05\n",
      "Epoch 501/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.5465e-05\n",
      "Epoch 502/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.5260e-05\n",
      "Epoch 503/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.5056e-05\n",
      "Epoch 504/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.4855e-05\n",
      "Epoch 505/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.4656e-05\n",
      "Epoch 506/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.4459e-05\n",
      "Epoch 507/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.4262e-05\n",
      "Epoch 508/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.4062e-05\n",
      "Epoch 509/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.3862e-05\n",
      "Epoch 510/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.3664e-05\n",
      "Epoch 511/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.3467e-05\n",
      "Epoch 512/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.3272e-05\n",
      "Epoch 513/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.3078e-05\n",
      "Epoch 514/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.2888e-05\n",
      "Epoch 515/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.2698e-05\n",
      "Epoch 516/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.2512e-05\n",
      "Epoch 517/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.2328e-05\n",
      "Epoch 518/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.2148e-05\n",
      "Epoch 519/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.1973e-05\n",
      "Epoch 520/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1804e-05\n",
      "Epoch 521/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1645e-05\n",
      "Epoch 522/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1499e-05\n",
      "Epoch 523/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 5.1377e-05\n",
      "Epoch 524/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1290e-05\n",
      "Epoch 525/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1262e-05\n",
      "Epoch 526/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.1331e-05\n",
      "Epoch 527/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1557e-05\n",
      "Epoch 528/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 5.2045e-05\n",
      "Epoch 529/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.2948e-05\n",
      "Epoch 530/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.4494e-05\n",
      "Epoch 531/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.6962e-05\n",
      "Epoch 532/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.0412e-05\n",
      "Epoch 533/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.4378e-05\n",
      "Epoch 534/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.7237e-05\n",
      "Epoch 535/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.6410e-05\n",
      "Epoch 536/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 6.1028e-05\n",
      "Epoch 537/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.3583e-05\n",
      "Epoch 538/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.9003e-05\n",
      "Epoch 539/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.9637e-05\n",
      "Epoch 540/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.3401e-05\n",
      "Epoch 541/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.6083e-05\n",
      "Epoch 542/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.4942e-05\n",
      "Epoch 543/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.1079e-05\n",
      "Epoch 544/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.8038e-05\n",
      "Epoch 545/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.8105e-05\n",
      "Epoch 546/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.0196e-05\n",
      "Epoch 547/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1506e-05\n",
      "Epoch 548/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.0513e-05\n",
      "Epoch 549/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.8215e-05\n",
      "Epoch 550/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.6812e-05\n",
      "Epoch 551/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.7219e-05\n",
      "Epoch 552/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.8381e-05\n",
      "Epoch 553/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.8711e-05\n",
      "Epoch 554/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.7747e-05\n",
      "Epoch 555/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.6420e-05\n",
      "Epoch 556/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.5860e-05\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 557/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.6233e-05\n",
      "Epoch 558/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.6764e-05\n",
      "Epoch 559/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.6684e-05\n",
      "Epoch 560/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.5974e-05\n",
      "Epoch 561/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.5234e-05\n",
      "Epoch 562/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.4989e-05\n",
      "Epoch 563/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.5190e-05\n",
      "Epoch 564/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.5381e-05\n",
      "Epoch 565/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.5214e-05\n",
      "Epoch 566/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.4740e-05\n",
      "Epoch 567/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.4293e-05\n",
      "Epoch 568/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.4119e-05\n",
      "Epoch 569/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.4169e-05\n",
      "Epoch 570/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.4205e-05\n",
      "Epoch 571/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.4051e-05\n",
      "Epoch 572/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.3736e-05\n",
      "Epoch 573/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.3425e-05\n",
      "Epoch 574/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.3247e-05\n",
      "Epoch 575/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.3197e-05\n",
      "Epoch 576/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.3165e-05\n",
      "Epoch 577/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.3049e-05\n",
      "Epoch 578/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.2839e-05\n",
      "Epoch 579/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.2604e-05\n",
      "Epoch 580/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.2419e-05\n",
      "Epoch 581/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 4.2307e-05\n",
      "Epoch 582/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.2232e-05\n",
      "Epoch 583/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.2139e-05\n",
      "Epoch 584/1000\n",
      "101/101 [==============================] - 0s 49us/step - loss: 4.1997e-05\n",
      "Epoch 585/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.1821e-05\n",
      "Epoch 586/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.1646e-05\n",
      "Epoch 587/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.1503e-05\n",
      "Epoch 588/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 4.1392e-05\n",
      "Epoch 589/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.1295e-05\n",
      "Epoch 590/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.1187e-05\n",
      "Epoch 591/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.1059e-05\n",
      "Epoch 592/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 4.0915e-05\n",
      "Epoch 593/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.0771e-05\n",
      "Epoch 594/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.0640e-05\n",
      "Epoch 595/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.0524e-05\n",
      "Epoch 596/1000\n",
      "101/101 [==============================] - 0s 22us/step - loss: 4.0418e-05\n",
      "Epoch 597/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 4.0312e-05\n",
      "Epoch 598/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.0198e-05\n",
      "Epoch 599/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.0077e-05\n",
      "Epoch 600/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.9952e-05\n",
      "Epoch 601/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.9829e-05\n",
      "Epoch 602/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.9712e-05\n",
      "Epoch 603/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.9602e-05\n",
      "Epoch 604/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.9497e-05\n",
      "Epoch 605/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.9392e-05\n",
      "Epoch 606/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.9285e-05\n",
      "Epoch 607/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.9176e-05\n",
      "Epoch 608/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.9065e-05\n",
      "Epoch 609/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.8954e-05\n",
      "Epoch 610/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.8845e-05\n",
      "Epoch 611/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.8739e-05\n",
      "Epoch 612/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.8635e-05\n",
      "Epoch 613/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.8533e-05\n",
      "Epoch 614/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.8427e-05\n",
      "Epoch 615/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 3.8319e-05\n",
      "Epoch 616/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.8211e-05\n",
      "Epoch 617/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.8102e-05\n",
      "Epoch 618/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.7994e-05\n",
      "Epoch 619/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.7886e-05\n",
      "Epoch 620/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 3.7780e-05\n",
      "Epoch 621/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.7675e-05\n",
      "Epoch 622/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.7572e-05\n",
      "Epoch 623/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 3.7470e-05\n",
      "Epoch 624/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.7369e-05\n",
      "Epoch 625/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.7269e-05\n",
      "Epoch 626/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.7169e-05\n",
      "Epoch 627/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.7070e-05\n",
      "Epoch 628/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.6972e-05\n",
      "Epoch 629/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.6874e-05\n",
      "Epoch 630/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6777e-05\n",
      "Epoch 631/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 3.6680e-05\n",
      "Epoch 632/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6584e-05\n",
      "Epoch 633/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6488e-05\n",
      "Epoch 634/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6393e-05\n",
      "Epoch 635/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6300e-05\n",
      "Epoch 636/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 3.6206e-05\n",
      "Epoch 637/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6114e-05\n",
      "Epoch 638/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.6022e-05\n",
      "Epoch 639/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.5931e-05\n",
      "Epoch 640/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.5841e-05\n",
      "Epoch 641/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.5752e-05\n",
      "Epoch 642/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.5663e-05\n",
      "Epoch 643/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.5575e-05\n",
      "Epoch 644/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.5487e-05\n",
      "Epoch 645/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.5400e-05\n",
      "Epoch 646/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.5314e-05\n",
      "Epoch 647/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.5229e-05\n",
      "Epoch 648/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.5144e-05\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 649/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.5061e-05\n",
      "Epoch 650/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4977e-05\n",
      "Epoch 651/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 3.4895e-05\n",
      "Epoch 652/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.4814e-05\n",
      "Epoch 653/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4733e-05\n",
      "Epoch 654/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4654e-05\n",
      "Epoch 655/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4576e-05\n",
      "Epoch 656/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4500e-05\n",
      "Epoch 657/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.4426e-05\n",
      "Epoch 658/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.4356e-05\n",
      "Epoch 659/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4291e-05\n",
      "Epoch 660/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4233e-05\n",
      "Epoch 661/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4187e-05\n",
      "Epoch 662/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4161e-05\n",
      "Epoch 663/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4166e-05\n",
      "Epoch 664/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4223e-05\n",
      "Epoch 665/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4367e-05\n",
      "Epoch 666/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.4654e-05\n",
      "Epoch 667/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.5181e-05\n",
      "Epoch 668/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6105e-05\n",
      "Epoch 669/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.7663e-05\n",
      "Epoch 670/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.0194e-05\n",
      "Epoch 671/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.3963e-05\n",
      "Epoch 672/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.9060e-05\n",
      "Epoch 673/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.4479e-05\n",
      "Epoch 674/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 5.7830e-05\n",
      "Epoch 675/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.5691e-05\n",
      "Epoch 676/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 4.7531e-05\n",
      "Epoch 677/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.7796e-05\n",
      "Epoch 678/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.2947e-05\n",
      "Epoch 679/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.5081e-05\n",
      "Epoch 680/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.0519e-05\n",
      "Epoch 681/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 4.3604e-05\n",
      "Epoch 682/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.1339e-05\n",
      "Epoch 683/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6016e-05\n",
      "Epoch 684/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.2586e-05\n",
      "Epoch 685/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 3.3488e-05\n",
      "Epoch 686/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.6596e-05\n",
      "Epoch 687/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.8073e-05\n",
      "Epoch 688/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6366e-05\n",
      "Epoch 689/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.3366e-05\n",
      "Epoch 690/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.2017e-05\n",
      "Epoch 691/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.3070e-05\n",
      "Epoch 692/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.4732e-05\n",
      "Epoch 693/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.4960e-05\n",
      "Epoch 694/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.3535e-05\n",
      "Epoch 695/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1989e-05\n",
      "Epoch 696/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1707e-05\n",
      "Epoch 697/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 3.2542e-05\n",
      "Epoch 698/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.3264e-05\n",
      "Epoch 699/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.3002e-05\n",
      "Epoch 700/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.2046e-05\n",
      "Epoch 701/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.1334e-05\n",
      "Epoch 702/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1389e-05\n",
      "Epoch 703/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1884e-05\n",
      "Epoch 704/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.2132e-05\n",
      "Epoch 705/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.1827e-05\n",
      "Epoch 706/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.1258e-05\n",
      "Epoch 707/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.0920e-05\n",
      "Epoch 708/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0991e-05\n",
      "Epoch 709/1000\n",
      "101/101 [==============================] - 0s 50us/step - loss: 3.1237e-05\n",
      "Epoch 710/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1308e-05\n",
      "Epoch 711/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1089e-05\n",
      "Epoch 712/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0756e-05\n",
      "Epoch 713/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.0558e-05\n",
      "Epoch 714/1000\n",
      "101/101 [==============================] - 0s 32us/step - loss: 3.0575e-05\n",
      "Epoch 715/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.0681e-05\n",
      "Epoch 716/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0699e-05\n",
      "Epoch 717/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0567e-05\n",
      "Epoch 718/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.0365e-05\n",
      "Epoch 719/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 3.0219e-05\n",
      "Epoch 720/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0184e-05\n",
      "Epoch 721/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0212e-05\n",
      "Epoch 722/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.0215e-05\n",
      "Epoch 723/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.0144e-05\n",
      "Epoch 724/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0019e-05\n",
      "Epoch 725/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9902e-05\n",
      "Epoch 726/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9835e-05\n",
      "Epoch 727/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 2.9814e-05\n",
      "Epoch 728/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9803e-05\n",
      "Epoch 729/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9765e-05\n",
      "Epoch 730/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9691e-05\n",
      "Epoch 731/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 2.9602e-05\n",
      "Epoch 732/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9525e-05\n",
      "Epoch 733/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9474e-05\n",
      "Epoch 734/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9442e-05\n",
      "Epoch 735/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9412e-05\n",
      "Epoch 736/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9368e-05\n",
      "Epoch 737/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9308e-05\n",
      "Epoch 738/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 2.9241e-05\n",
      "Epoch 739/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9179e-05\n",
      "Epoch 740/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9129e-05\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 741/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9089e-05\n",
      "Epoch 742/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.9051e-05\n",
      "Epoch 743/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9010e-05\n",
      "Epoch 744/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8961e-05\n",
      "Epoch 745/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8903e-05\n",
      "Epoch 746/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8845e-05\n",
      "Epoch 747/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8789e-05\n",
      "Epoch 748/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.8739e-05\n",
      "Epoch 749/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8690e-05\n",
      "Epoch 750/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.8642e-05\n",
      "Epoch 751/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8591e-05\n",
      "Epoch 752/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.8538e-05\n",
      "Epoch 753/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8484e-05\n",
      "Epoch 754/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8430e-05\n",
      "Epoch 755/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8380e-05\n",
      "Epoch 756/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.8331e-05\n",
      "Epoch 757/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8285e-05\n",
      "Epoch 758/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8240e-05\n",
      "Epoch 759/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8195e-05\n",
      "Epoch 760/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.8145e-05\n",
      "Epoch 761/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8088e-05\n",
      "Epoch 762/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8025e-05\n",
      "Epoch 763/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7959e-05\n",
      "Epoch 764/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7895e-05\n",
      "Epoch 765/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 2.7832e-05\n",
      "Epoch 766/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.7773e-05\n",
      "Epoch 767/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7716e-05\n",
      "Epoch 768/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7660e-05\n",
      "Epoch 769/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7606e-05\n",
      "Epoch 770/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 2.7550e-05\n",
      "Epoch 771/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.7493e-05\n",
      "Epoch 772/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.7436e-05\n",
      "Epoch 773/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7380e-05\n",
      "Epoch 774/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7324e-05\n",
      "Epoch 775/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.7269e-05\n",
      "Epoch 776/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7215e-05\n",
      "Epoch 777/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.7162e-05\n",
      "Epoch 778/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7109e-05\n",
      "Epoch 779/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7056e-05\n",
      "Epoch 780/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7003e-05\n",
      "Epoch 781/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6951e-05\n",
      "Epoch 782/1000\n",
      "101/101 [==============================] - 0s 24us/step - loss: 2.6900e-05\n",
      "Epoch 783/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.6850e-05\n",
      "Epoch 784/1000\n",
      "101/101 [==============================] - 0s 33us/step - loss: 2.6800e-05\n",
      "Epoch 785/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6751e-05\n",
      "Epoch 786/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6702e-05\n",
      "Epoch 787/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.6653e-05\n",
      "Epoch 788/1000\n",
      "101/101 [==============================] - 0s 21us/step - loss: 2.6605e-05\n",
      "Epoch 789/1000\n",
      "101/101 [==============================] - 0s 22us/step - loss: 2.6556e-05\n",
      "Epoch 790/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6507e-05\n",
      "Epoch 791/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6459e-05\n",
      "Epoch 792/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.6412e-05\n",
      "Epoch 793/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6365e-05\n",
      "Epoch 794/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6318e-05\n",
      "Epoch 795/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.6272e-05\n",
      "Epoch 796/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.6225e-05\n",
      "Epoch 797/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.6171e-05\n",
      "Epoch 798/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6114e-05\n",
      "Epoch 799/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.6055e-05\n",
      "Epoch 800/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5995e-05\n",
      "Epoch 801/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.5935e-05\n",
      "Epoch 802/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5875e-05\n",
      "Epoch 803/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.5816e-05\n",
      "Epoch 804/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5758e-05\n",
      "Epoch 805/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5701e-05\n",
      "Epoch 806/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5646e-05\n",
      "Epoch 807/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5593e-05\n",
      "Epoch 808/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5541e-05\n",
      "Epoch 809/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5492e-05\n",
      "Epoch 810/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5444e-05\n",
      "Epoch 811/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5398e-05\n",
      "Epoch 812/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5354e-05\n",
      "Epoch 813/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.5313e-05\n",
      "Epoch 814/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.5274e-05\n",
      "Epoch 815/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.5240e-05\n",
      "Epoch 816/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5211e-05\n",
      "Epoch 817/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5191e-05\n",
      "Epoch 818/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.5184e-05\n",
      "Epoch 819/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5195e-05\n",
      "Epoch 820/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5235e-05\n",
      "Epoch 821/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.5320e-05\n",
      "Epoch 822/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5476e-05\n",
      "Epoch 823/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5743e-05\n",
      "Epoch 824/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6184e-05\n",
      "Epoch 825/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6896e-05\n",
      "Epoch 826/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.8030e-05\n",
      "Epoch 827/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.9783e-05\n",
      "Epoch 828/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 3.2401e-05\n",
      "Epoch 829/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.6023e-05\n",
      "Epoch 830/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 4.0566e-05\n",
      "Epoch 831/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.5096e-05\n",
      "Epoch 832/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.7912e-05\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 833/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 4.6574e-05\n",
      "Epoch 834/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.0441e-05\n",
      "Epoch 835/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1881e-05\n",
      "Epoch 836/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.5604e-05\n",
      "Epoch 837/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.4594e-05\n",
      "Epoch 838/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8010e-05\n",
      "Epoch 839/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.2303e-05\n",
      "Epoch 840/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.3890e-05\n",
      "Epoch 841/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1634e-05\n",
      "Epoch 842/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.7392e-05\n",
      "Epoch 843/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.4431e-05\n",
      "Epoch 844/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.4503e-05\n",
      "Epoch 845/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6686e-05\n",
      "Epoch 846/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8606e-05\n",
      "Epoch 847/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.8522e-05\n",
      "Epoch 848/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6630e-05\n",
      "Epoch 849/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.4579e-05\n",
      "Epoch 850/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3885e-05\n",
      "Epoch 851/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.4684e-05\n",
      "Epoch 852/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5886e-05\n",
      "Epoch 853/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.6302e-05\n",
      "Epoch 854/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.5602e-05\n",
      "Epoch 855/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.4440e-05\n",
      "Epoch 856/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.3729e-05\n",
      "Epoch 857/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3851e-05\n",
      "Epoch 858/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.4457e-05\n",
      "Epoch 859/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.4888e-05\n",
      "Epoch 860/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.4759e-05\n",
      "Epoch 861/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.4203e-05\n",
      "Epoch 862/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.3665e-05\n",
      "Epoch 863/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.3494e-05\n",
      "Epoch 864/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3692e-05\n",
      "Epoch 865/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3985e-05\n",
      "Epoch 866/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.4085e-05\n",
      "Epoch 867/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.3909e-05\n",
      "Epoch 868/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3595e-05\n",
      "Epoch 869/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3357e-05\n",
      "Epoch 870/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.3313e-05\n",
      "Epoch 871/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 2.3422e-05\n",
      "Epoch 872/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3545e-05\n",
      "Epoch 873/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3562e-05\n",
      "Epoch 874/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3453e-05\n",
      "Epoch 875/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3287e-05\n",
      "Epoch 876/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3159e-05\n",
      "Epoch 877/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.3121e-05\n",
      "Epoch 878/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.3156e-05\n",
      "Epoch 879/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3205e-05\n",
      "Epoch 880/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3213e-05\n",
      "Epoch 881/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3162e-05\n",
      "Epoch 882/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.3076e-05\n",
      "Epoch 883/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.2993e-05\n",
      "Epoch 884/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2942e-05\n",
      "Epoch 885/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2926e-05\n",
      "Epoch 886/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.2929e-05\n",
      "Epoch 887/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2925e-05\n",
      "Epoch 888/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2901e-05\n",
      "Epoch 889/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2854e-05\n",
      "Epoch 890/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2796e-05\n",
      "Epoch 891/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2741e-05\n",
      "Epoch 892/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2699e-05\n",
      "Epoch 893/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2671e-05\n",
      "Epoch 894/1000\n",
      "101/101 [==============================] - 0s 40us/step - loss: 2.2652e-05\n",
      "Epoch 895/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2633e-05\n",
      "Epoch 896/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2607e-05\n",
      "Epoch 897/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2573e-05\n",
      "Epoch 898/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.2533e-05\n",
      "Epoch 899/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2492e-05\n",
      "Epoch 900/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2454e-05\n",
      "Epoch 901/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2421e-05\n",
      "Epoch 902/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2394e-05\n",
      "Epoch 903/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2370e-05\n",
      "Epoch 904/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2346e-05\n",
      "Epoch 905/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2320e-05\n",
      "Epoch 906/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2292e-05\n",
      "Epoch 907/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2261e-05\n",
      "Epoch 908/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2230e-05\n",
      "Epoch 909/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2198e-05\n",
      "Epoch 910/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2168e-05\n",
      "Epoch 911/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2140e-05\n",
      "Epoch 912/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2114e-05\n",
      "Epoch 913/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2089e-05\n",
      "Epoch 914/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2064e-05\n",
      "Epoch 915/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2039e-05\n",
      "Epoch 916/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2014e-05\n",
      "Epoch 917/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.1988e-05\n",
      "Epoch 918/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1962e-05\n",
      "Epoch 919/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.1935e-05\n",
      "Epoch 920/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1909e-05\n",
      "Epoch 921/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1882e-05\n",
      "Epoch 922/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.1856e-05\n",
      "Epoch 923/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1831e-05\n",
      "Epoch 924/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.1806e-05\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 925/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1782e-05\n",
      "Epoch 926/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.1758e-05\n",
      "Epoch 927/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1734e-05\n",
      "Epoch 928/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1711e-05\n",
      "Epoch 929/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1687e-05\n",
      "Epoch 930/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.1664e-05\n",
      "Epoch 931/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1641e-05\n",
      "Epoch 932/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1618e-05\n",
      "Epoch 933/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.1595e-05\n",
      "Epoch 934/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1566e-05\n",
      "Epoch 935/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1535e-05\n",
      "Epoch 936/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.1503e-05\n",
      "Epoch 937/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1471e-05\n",
      "Epoch 938/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.1440e-05\n",
      "Epoch 939/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.1410e-05\n",
      "Epoch 940/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1382e-05\n",
      "Epoch 941/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1354e-05\n",
      "Epoch 942/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1327e-05\n",
      "Epoch 943/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1301e-05\n",
      "Epoch 944/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1275e-05\n",
      "Epoch 945/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.1250e-05\n",
      "Epoch 946/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.1224e-05\n",
      "Epoch 947/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1199e-05\n",
      "Epoch 948/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1174e-05\n",
      "Epoch 949/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1149e-05\n",
      "Epoch 950/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1124e-05\n",
      "Epoch 951/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1099e-05\n",
      "Epoch 952/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1073e-05\n",
      "Epoch 953/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1049e-05\n",
      "Epoch 954/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1024e-05\n",
      "Epoch 955/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1000e-05\n",
      "Epoch 956/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.0976e-05\n",
      "Epoch 957/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.0952e-05\n",
      "Epoch 958/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0928e-05\n",
      "Epoch 959/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.0905e-05\n",
      "Epoch 960/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0883e-05\n",
      "Epoch 961/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0861e-05\n",
      "Epoch 962/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0839e-05\n",
      "Epoch 963/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0820e-05\n",
      "Epoch 964/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0802e-05\n",
      "Epoch 965/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.0789e-05\n",
      "Epoch 966/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0781e-05\n",
      "Epoch 967/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0784e-05\n",
      "Epoch 968/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0803e-05\n",
      "Epoch 969/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0849e-05\n",
      "Epoch 970/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.0942e-05\n",
      "Epoch 971/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.1115e-05\n",
      "Epoch 972/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1426e-05\n",
      "Epoch 973/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1972e-05\n",
      "Epoch 974/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2927e-05\n",
      "Epoch 975/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.4572e-05\n",
      "Epoch 976/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.7367e-05\n",
      "Epoch 977/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.1922e-05\n",
      "Epoch 978/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.8950e-05\n",
      "Epoch 979/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.8459e-05\n",
      "Epoch 980/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.8736e-05\n",
      "Epoch 981/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.4331e-05\n",
      "Epoch 982/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.9257e-05\n",
      "Epoch 983/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.2907e-05\n",
      "Epoch 984/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5972e-05\n",
      "Epoch 985/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0464e-05\n",
      "Epoch 986/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.7598e-05\n",
      "Epoch 987/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.7600e-05\n",
      "Epoch 988/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.9561e-05\n",
      "Epoch 989/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.1661e-05\n",
      "Epoch 990/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2380e-05\n",
      "Epoch 991/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.0749e-05\n",
      "Epoch 992/1000\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.6222e-05\n",
      "Epoch 993/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0857e-05\n",
      "Epoch 994/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9058e-05\n",
      "Epoch 995/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.3266e-05\n",
      "Epoch 996/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.0165e-05\n",
      "Epoch 997/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.2238e-05\n",
      "Epoch 998/1000\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.5677e-05\n",
      "Epoch 999/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.5877e-05\n",
      "Epoch 1000/1000\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.2793e-05\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x130183dc470>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Fitting the RNN to the Trainign set\n",
    "model.fit(X, y, batch_size = batch_size, epochs = 1000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_predict = model.predict(X_train)\n",
    "y_predict = sc_y.inverse_transform(y_predict)\n",
    "# visualising the results\n",
    "plt.plot(X_ori,y_ori, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(X_ori,y_predict, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0049\n",
      "Epoch 2/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0023\n",
      "Epoch 3/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0011\n",
      "Epoch 4/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.2584e-04\n",
      "Epoch 5/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0014\n",
      "Epoch 6/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0021\n",
      "Epoch 7/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0026\n",
      "Epoch 8/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0027\n",
      "Epoch 9/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0023\n",
      "Epoch 10/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0017\n",
      "Epoch 11/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0011\n",
      "Epoch 12/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.6532e-04\n",
      "Epoch 13/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.7526e-04\n",
      "Epoch 14/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.9017e-04\n",
      "Epoch 15/100\n",
      "101/101 [==============================] - 0s 30us/step - loss: 8.5930e-04\n",
      "Epoch 16/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0012\n",
      "Epoch 17/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 0.0014\n",
      "Epoch 18/100\n",
      "101/101 [==============================] - 0s 30us/step - loss: 0.0014\n",
      "Epoch 19/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0013\n",
      "Epoch 20/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 0.0010\n",
      "Epoch 21/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 8.1318e-04\n",
      "Epoch 22/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.1009e-04\n",
      "Epoch 23/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.9459e-04\n",
      "Epoch 24/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.9396e-04\n",
      "Epoch 25/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.2356e-04\n",
      "Epoch 26/100\n",
      "101/101 [==============================] - 0s 30us/step - loss: 5.8504e-04\n",
      "Epoch 27/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.2204e-04\n",
      "Epoch 28/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.9037e-04\n",
      "Epoch 29/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.2620e-04\n",
      "Epoch 30/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 4.1789e-04\n",
      "Epoch 31/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.0039e-04\n",
      "Epoch 32/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.1447e-04\n",
      "Epoch 33/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.5127e-04\n",
      "Epoch 34/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.3239e-04\n",
      "Epoch 35/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.4254e-04\n",
      "Epoch 36/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.5621e-04\n",
      "Epoch 37/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.7270e-04\n",
      "Epoch 38/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.6886e-04\n",
      "Epoch 39/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 1.4667e-04\n",
      "Epoch 40/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 1.1764e-04\n",
      "Epoch 41/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 8.1211e-05\n",
      "Epoch 42/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.5272e-05\n",
      "Epoch 43/100\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.2649e-05\n",
      "Epoch 44/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 4.0498e-05\n",
      "Epoch 45/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1694e-05\n",
      "Epoch 46/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 6.4142e-05\n",
      "Epoch 47/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.3813e-05\n",
      "Epoch 48/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 7.8993e-05\n",
      "Epoch 49/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 7.4649e-05\n",
      "Epoch 50/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 6.6942e-05\n",
      "Epoch 51/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.7931e-05\n",
      "Epoch 52/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.9783e-05\n",
      "Epoch 53/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.7254e-05\n",
      "Epoch 54/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.7814e-05\n",
      "Epoch 55/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.1167e-05\n",
      "Epoch 56/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.5735e-05\n",
      "Epoch 57/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.7757e-05\n",
      "Epoch 58/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.7895e-05\n",
      "Epoch 59/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 5.5281e-05\n",
      "Epoch 60/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 5.0582e-05\n",
      "Epoch 61/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.6244e-05\n",
      "Epoch 62/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.2293e-05\n",
      "Epoch 63/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.0058e-05\n",
      "Epoch 64/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.9615e-05\n",
      "Epoch 65/100\n",
      "101/101 [==============================] - 0s 30us/step - loss: 3.9748e-05\n",
      "Epoch 66/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 4.0463e-05\n",
      "Epoch 67/100\n",
      "101/101 [==============================] - 0s 30us/step - loss: 4.0570e-05\n",
      "Epoch 68/100\n",
      "101/101 [==============================] - 0s 15us/step - loss: 3.9686e-05\n",
      "Epoch 69/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.8312e-05\n",
      "Epoch 70/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.6292e-05\n",
      "Epoch 71/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.4481e-05\n",
      "Epoch 72/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.3187e-05\n",
      "Epoch 73/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.2382e-05\n",
      "Epoch 74/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.2340e-05\n",
      "Epoch 75/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.2548e-05\n",
      "Epoch 76/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.2805e-05\n",
      "Epoch 77/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.2964e-05\n",
      "Epoch 78/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.2712e-05\n",
      "Epoch 79/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.2294e-05\n",
      "Epoch 80/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.1747e-05\n",
      "Epoch 81/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.1190e-05\n",
      "Epoch 82/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.0871e-05\n",
      "Epoch 83/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 3.0699e-05\n",
      "Epoch 84/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0716e-05\n",
      "Epoch 85/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0839e-05\n",
      "Epoch 86/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0896e-05\n",
      "Epoch 87/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0905e-05\n",
      "Epoch 88/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0775e-05\n",
      "Epoch 89/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0540e-05\n",
      "Epoch 90/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0290e-05\n",
      "Epoch 91/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 3.0027e-05\n",
      "Epoch 92/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9840e-05\n",
      "Epoch 93/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.9710e-05\n",
      "Epoch 94/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9613e-05\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 95/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9555e-05\n",
      "Epoch 96/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.9469e-05\n",
      "Epoch 97/100\n",
      "101/101 [==============================] - 0s 10us/step - loss: 2.9353e-05\n",
      "Epoch 98/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9206e-05\n",
      "Epoch 99/100\n",
      "101/101 [==============================] - 0s 20us/step - loss: 2.9022e-05\n",
      "Epoch 100/100\n",
      "101/101 [==============================] - 0s 30us/step - loss: 2.8845e-05\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x130183b4ef0>"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y2_ori = training_set_ori.loc[:,['y2']]\n",
    "sc_y2 = MinMaxScaler()\n",
    "y2_train = sc_y2.fit_transform(y2_ori)\n",
    "model.fit(X_train,y2_train, batch_size = batch_size, epochs = 100)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y2_predict = model.predict(X_train)\n",
    "y2_predict = sc_y2.inverse_transform(y2_predict)\n",
    "# visualising the results\n",
    "plt.plot(X_ori,y_ori, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(X_ori,y2_predict, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.plot(X_ori,y2_ori, color = 'green', label = 'Predicted Stock Price')\n",
    "plt.title('Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(730, 1)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'Price')"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from keras.models import load_model\n",
    "model_rnn = load_model('rnn_zgpa_stock_predict.h5')  \n",
    "# Importing the training set\n",
    "training_set_ori = pd.read_csv(\"zgpa_2016-18.csv\")\n",
    "training_set_ori = training_set_ori.loc[:,['open']].values\n",
    "sc = MinMaxScaler() # default is 0,1\n",
    "# Fitting to training_set, scale training set, \n",
    "# transform we'll apply normalizationjust need min and max for normalization\n",
    "training_set = sc.fit_transform(training_set_ori)\n",
    "m = training_set.shape[0]\n",
    "X_train = training_set[0:m-1]\n",
    "y_train = training_set[1:m]\n",
    "X_train = np.reshape(X_train, (m-1, 1, 1))\n",
    "# Part 3 - Making the predictions and visualising the results based on the training data\n",
    "\n",
    "# Get the real stock price 2016 - 2018\n",
    "# Importing the training set\n",
    "real_stock_price = pd.read_csv(\"zgpa_2016-18.csv\")\n",
    "real_stock_price_train = real_stock_price.iloc[:,1:2].values\n",
    "# Getting the predicted stock price of 2016 - 2018\n",
    "predicted_stock_price_train = model_rnn.predict(X_train)\n",
    "print(predicted_stock_price_train.shape)\n",
    "predicted_stock_price_train = sc.inverse_transform(predicted_stock_price_train)\n",
    "# visualising the results\n",
    "plt.plot(real_stock_price_train[1:m], color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_price_train, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Price')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(913, 1)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'Price')"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "training_set_ori = pd.read_csv(\"zgrs_2016-18.csv\")\n",
    "training_set_ori = training_set_ori.loc[:,['open']].values\n",
    "# sc = MinMaxScaler() # default is 0,1\n",
    "# Fitting to training_set, scale training set, \n",
    "# transform we'll apply normalizationjust need min and max for normalization\n",
    "training_set = sc.fit_transform(training_set_ori)\n",
    "m = training_set.shape[0]\n",
    "X_train = training_set[0:m-1]\n",
    "y_train = training_set[1:m]\n",
    "X_train = np.reshape(X_train, (m-1, 1, 1))\n",
    "# Part 3 - Making the predictions and visualising the results based on the training data\n",
    "\n",
    "# Get the real stock price 2016 - 2018\n",
    "# Importing the training set\n",
    "real_stock_price = pd.read_csv(\"zgrs_2016-18.csv\")\n",
    "real_stock_price_train = real_stock_price.iloc[:,1:2].values\n",
    "# Getting the predicted stock price of 2016 - 2018\n",
    "predicted_stock_price_train = model_rnn.predict(X_train)\n",
    "print(predicted_stock_price_train.shape)\n",
    "predicted_stock_price_train = sc.inverse_transform(predicted_stock_price_train)\n",
    "# visualising the results\n",
    "plt.plot(real_stock_price_train[1:m], color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_price_train, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Price')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Part 5 - Evaluating the RNN\n",
    "# Evaluate of the RNN - learning to evaluate regression models\n",
    "# Root Mean Square Error (RMSE)\n",
    "\n",
    "import math\n",
    "from sklearn.metrics import mean_squared_error\n",
    "rmse = math.sqrt(mean_squared_error(real_stock_price_train[1:m], predicted_stock_price_train))\n",
    "rmse"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/200\n",
      "913/913 [==============================] - 1s 763us/step - loss: 9.4440e-04\n",
      "Epoch 2/200\n",
      "913/913 [==============================] - 0s 70us/step - loss: 9.4388e-04\n",
      "Epoch 3/200\n",
      "913/913 [==============================] - 0s 70us/step - loss: 9.4391e-04\n",
      "Epoch 4/200\n",
      "913/913 [==============================] - 0s 86us/step - loss: 9.4343e-04\n",
      "Epoch 5/200\n",
      "913/913 [==============================] - 0s 83us/step - loss: 9.3903e-04\n",
      "Epoch 6/200\n",
      "913/913 [==============================] - 0s 96us/step - loss: 9.4457e-04\n",
      "Epoch 7/200\n",
      "913/913 [==============================] - 0s 102us/step - loss: 9.3947e-04\n",
      "Epoch 8/200\n",
      "913/913 [==============================] - 0s 91us/step - loss: 9.3597e-04\n",
      "Epoch 9/200\n",
      "913/913 [==============================] - 0s 92us/step - loss: 9.3815e-04\n",
      "Epoch 10/200\n",
      "913/913 [==============================] - 0s 80us/step - loss: 9.3703e-04\n",
      "Epoch 11/200\n",
      "913/913 [==============================] - 0s 90us/step - loss: 9.3611e-04\n",
      "Epoch 12/200\n",
      "913/913 [==============================] - 0s 104us/step - loss: 9.3545e-04\n",
      "Epoch 13/200\n",
      "913/913 [==============================] - 0s 107us/step - loss: 9.3675e-04\n",
      "Epoch 14/200\n",
      "913/913 [==============================] - 0s 114us/step - loss: 9.3544e-04\n",
      "Epoch 15/200\n",
      "913/913 [==============================] - 0s 95us/step - loss: 9.3803e-04\n",
      "Epoch 16/200\n",
      "913/913 [==============================] - 0s 92us/step - loss: 9.3540e-04\n",
      "Epoch 17/200\n",
      "913/913 [==============================] - 0s 94us/step - loss: 9.3350e-04\n",
      "Epoch 18/200\n",
      "913/913 [==============================] - 0s 95us/step - loss: 9.3628e-04\n",
      "Epoch 19/200\n",
      "913/913 [==============================] - 0s 113us/step - loss: 9.3575e-04\n",
      "Epoch 20/200\n",
      "913/913 [==============================] - 0s 108us/step - loss: 9.3643e-04\n",
      "Epoch 21/200\n",
      "913/913 [==============================] - 0s 106us/step - loss: 9.3224e-04\n",
      "Epoch 22/200\n",
      "913/913 [==============================] - 0s 107us/step - loss: 9.3426e-04\n",
      "Epoch 23/200\n",
      "913/913 [==============================] - 0s 84us/step - loss: 9.3713e-04\n",
      "Epoch 24/200\n",
      "913/913 [==============================] - 0s 92us/step - loss: 9.4352e-04\n",
      "Epoch 25/200\n",
      "913/913 [==============================] - 0s 121us/step - loss: 9.3452e-04\n",
      "Epoch 26/200\n",
      "913/913 [==============================] - 0s 119us/step - loss: 9.3340e-04\n",
      "Epoch 27/200\n",
      "913/913 [==============================] - 0s 116us/step - loss: 9.3321e-04\n",
      "Epoch 28/200\n",
      "913/913 [==============================] - 0s 88us/step - loss: 9.4467e-04\n",
      "Epoch 29/200\n",
      "913/913 [==============================] - 0s 104us/step - loss: 9.3845e-04\n",
      "Epoch 30/200\n",
      "913/913 [==============================] - 0s 106us/step - loss: 9.3702e-04\n",
      "Epoch 31/200\n",
      "913/913 [==============================] - 0s 134us/step - loss: 9.3784e-04\n",
      "Epoch 32/200\n",
      "913/913 [==============================] - 0s 101us/step - loss: 9.3438e-04\n",
      "Epoch 33/200\n",
      "913/913 [==============================] - 0s 88us/step - loss: 9.4376e-04\n",
      "Epoch 34/200\n",
      "913/913 [==============================] - 0s 108us/step - loss: 9.3433e-04\n",
      "Epoch 35/200\n",
      "913/913 [==============================] - 0s 100us/step - loss: 9.4214e-04\n",
      "Epoch 36/200\n",
      "913/913 [==============================] - 0s 86us/step - loss: 9.4480e-04\n",
      "Epoch 37/200\n",
      "913/913 [==============================] - 0s 89us/step - loss: 9.3532e-04\n",
      "Epoch 38/200\n",
      "913/913 [==============================] - 0s 101us/step - loss: 9.3617e-04\n",
      "Epoch 39/200\n",
      "913/913 [==============================] - 0s 99us/step - loss: 9.3629e-04\n",
      "Epoch 40/200\n",
      "913/913 [==============================] - 0s 95us/step - loss: 9.3781e-04\n",
      "Epoch 41/200\n",
      "913/913 [==============================] - 0s 100us/step - loss: 9.3716e-04\n",
      "Epoch 42/200\n",
      "913/913 [==============================] - 0s 89us/step - loss: 9.3308e-04\n",
      "Epoch 43/200\n",
      "913/913 [==============================] - 0s 109us/step - loss: 9.3303e-04\n",
      "Epoch 44/200\n",
      "913/913 [==============================] - 0s 111us/step - loss: 9.3522e-04\n",
      "Epoch 45/200\n",
      "913/913 [==============================] - 0s 130us/step - loss: 9.3436e-04\n",
      "Epoch 46/200\n",
      "913/913 [==============================] - 0s 114us/step - loss: 9.3533e-04\n",
      "Epoch 47/200\n",
      "913/913 [==============================] - 0s 89us/step - loss: 9.3559e-04\n",
      "Epoch 48/200\n",
      "913/913 [==============================] - 0s 95us/step - loss: 9.3461e-04\n",
      "Epoch 49/200\n",
      "913/913 [==============================] - 0s 89us/step - loss: 9.3417e-04\n",
      "Epoch 50/200\n",
      "913/913 [==============================] - 0s 108us/step - loss: 9.3768e-04\n",
      "Epoch 51/200\n",
      "913/913 [==============================] - 0s 116us/step - loss: 9.3644e-04\n",
      "Epoch 52/200\n",
      "913/913 [==============================] - 0s 106us/step - loss: 9.3640e-04\n",
      "Epoch 53/200\n",
      "913/913 [==============================] - 0s 97us/step - loss: 9.3403e-04\n",
      "Epoch 54/200\n",
      "913/913 [==============================] - 0s 90us/step - loss: 9.3186e-04\n",
      "Epoch 55/200\n",
      "913/913 [==============================] - 0s 102us/step - loss: 9.3613e-04\n",
      "Epoch 56/200\n",
      "913/913 [==============================] - 0s 135us/step - loss: 9.3634e-04\n",
      "Epoch 57/200\n",
      "913/913 [==============================] - 0s 128us/step - loss: 9.3656e-04\n",
      "Epoch 58/200\n",
      "913/913 [==============================] - 0s 119us/step - loss: 9.3493e-04\n",
      "Epoch 59/200\n",
      "913/913 [==============================] - 0s 105us/step - loss: 9.3995e-04\n",
      "Epoch 60/200\n",
      "913/913 [==============================] - 0s 115us/step - loss: 9.4301e-04\n",
      "Epoch 61/200\n",
      "913/913 [==============================] - 0s 113us/step - loss: 9.3439e-04\n",
      "Epoch 62/200\n",
      "913/913 [==============================] - 0s 148us/step - loss: 9.3974e-04\n",
      "Epoch 63/200\n",
      "913/913 [==============================] - 0s 135us/step - loss: 9.3730e-04\n",
      "Epoch 64/200\n",
      "913/913 [==============================] - 0s 130us/step - loss: 9.3328e-04\n",
      "Epoch 65/200\n",
      "913/913 [==============================] - 0s 129us/step - loss: 9.3604e-04\n",
      "Epoch 66/200\n",
      "913/913 [==============================] - 0s 111us/step - loss: 9.3713e-04\n",
      "Epoch 67/200\n",
      "913/913 [==============================] - 0s 91us/step - loss: 9.3177e-04\n",
      "Epoch 68/200\n",
      "913/913 [==============================] - 0s 77us/step - loss: 9.3230e-04\n",
      "Epoch 69/200\n",
      "913/913 [==============================] - 0s 72us/step - loss: 9.3206e-04\n",
      "Epoch 70/200\n",
      "913/913 [==============================] - 0s 91us/step - loss: 9.3095e-04\n",
      "Epoch 71/200\n",
      "913/913 [==============================] - 0s 103us/step - loss: 9.3622e-04\n",
      "Epoch 72/200\n",
      "913/913 [==============================] - 0s 102us/step - loss: 9.4472e-04\n",
      "Epoch 73/200\n",
      "913/913 [==============================] - 0s 92us/step - loss: 9.3143e-04\n",
      "Epoch 74/200\n",
      "913/913 [==============================] - 0s 74us/step - loss: 9.3227e-04\n",
      "Epoch 75/200\n",
      "913/913 [==============================] - 0s 89us/step - loss: 9.4167e-04\n",
      "Epoch 76/200\n",
      "913/913 [==============================] - 0s 103us/step - loss: 9.3668e-04\n",
      "Epoch 77/200\n",
      "913/913 [==============================] - 0s 133us/step - loss: 9.3739e-04\n",
      "Epoch 78/200\n",
      "913/913 [==============================] - 0s 103us/step - loss: 9.3397e-04\n",
      "Epoch 79/200\n",
      "913/913 [==============================] - 0s 82us/step - loss: 9.3270e-04\n",
      "Epoch 80/200\n",
      "913/913 [==============================] - 0s 84us/step - loss: 9.3154e-04\n",
      "Epoch 81/200\n",
      "913/913 [==============================] - 0s 79us/step - loss: 9.3181e-04\n",
      "Epoch 82/200\n",
      "913/913 [==============================] - 0s 81us/step - loss: 9.3281e-04\n",
      "Epoch 83/200\n",
      "913/913 [==============================] - 0s 79us/step - loss: 9.4401e-04\n",
      "Epoch 84/200\n",
      "913/913 [==============================] - 0s 77us/step - loss: 9.3680e-04\n",
      "Epoch 85/200\n",
      "913/913 [==============================] - 0s 88us/step - loss: 9.3318e-04\n",
      "Epoch 86/200\n",
      "913/913 [==============================] - 0s 80us/step - loss: 9.3037e-04\n",
      "Epoch 87/200\n",
      "913/913 [==============================] - 0s 100us/step - loss: 9.2886e-04\n",
      "Epoch 88/200\n",
      "913/913 [==============================] - 0s 83us/step - loss: 9.3360e-04\n",
      "Epoch 89/200\n",
      "913/913 [==============================] - 0s 84us/step - loss: 9.3799e-04\n",
      "Epoch 90/200\n",
      "913/913 [==============================] - 0s 80us/step - loss: 9.3169e-04\n",
      "Epoch 91/200\n",
      "913/913 [==============================] - 0s 89us/step - loss: 9.3106e-04\n",
      "Epoch 92/200\n",
      "913/913 [==============================] - 0s 104us/step - loss: 9.2982e-04\n",
      "Epoch 93/200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "913/913 [==============================] - 0s 79us/step - loss: 9.3149e-04\n",
      "Epoch 94/200\n",
      "913/913 [==============================] - 0s 84us/step - loss: 9.3056e-04\n",
      "Epoch 95/200\n",
      "913/913 [==============================] - 0s 76us/step - loss: 9.3813e-04\n",
      "Epoch 96/200\n",
      "913/913 [==============================] - 0s 69us/step - loss: 9.3341e-04\n",
      "Epoch 97/200\n",
      "913/913 [==============================] - 0s 76us/step - loss: 9.3650e-04\n",
      "Epoch 98/200\n",
      "913/913 [==============================] - 0s 80us/step - loss: 9.3101e-04\n",
      "Epoch 99/200\n",
      "913/913 [==============================] - 0s 73us/step - loss: 9.3336e-04\n",
      "Epoch 100/200\n",
      "913/913 [==============================] - 0s 75us/step - loss: 9.3084e-04\n",
      "Epoch 101/200\n",
      "913/913 [==============================] - 0s 78us/step - loss: 9.3043e-04\n",
      "Epoch 102/200\n",
      "913/913 [==============================] - 0s 74us/step - loss: 9.3168e-04\n",
      "Epoch 103/200\n",
      "913/913 [==============================] - 0s 74us/step - loss: 9.3225e-04\n",
      "Epoch 104/200\n",
      "913/913 [==============================] - 0s 81us/step - loss: 9.2895e-04\n",
      "Epoch 105/200\n",
      "913/913 [==============================] - 0s 71us/step - loss: 9.2859e-04\n",
      "Epoch 106/200\n",
      "913/913 [==============================] - 0s 86us/step - loss: 9.4558e-04\n",
      "Epoch 107/200\n",
      "913/913 [==============================] - 0s 82us/step - loss: 9.3373e-04\n",
      "Epoch 108/200\n",
      "913/913 [==============================] - 0s 79us/step - loss: 9.3847e-04\n",
      "Epoch 109/200\n",
      "913/913 [==============================] - 0s 86us/step - loss: 9.3638e-04\n",
      "Epoch 110/200\n",
      "913/913 [==============================] - 0s 74us/step - loss: 9.3173e-04\n",
      "Epoch 111/200\n",
      "913/913 [==============================] - 0s 72us/step - loss: 9.4144e-04\n",
      "Epoch 112/200\n",
      "913/913 [==============================] - 0s 80us/step - loss: 9.3186e-04\n",
      "Epoch 113/200\n",
      "913/913 [==============================] - 0s 77us/step - loss: 9.4038e-04\n",
      "Epoch 114/200\n",
      "913/913 [==============================] - 0s 95us/step - loss: 9.3874e-04\n",
      "Epoch 115/200\n",
      "913/913 [==============================] - 0s 124us/step - loss: 9.3029e-04\n",
      "Epoch 116/200\n",
      "913/913 [==============================] - 0s 85us/step - loss: 9.4551e-04\n",
      "Epoch 117/200\n",
      "913/913 [==============================] - 0s 97us/step - loss: 9.4016e-04\n",
      "Epoch 118/200\n",
      "913/913 [==============================] - 0s 99us/step - loss: 9.3752e-04\n",
      "Epoch 119/200\n",
      "913/913 [==============================] - 0s 95us/step - loss: 9.3285e-04\n",
      "Epoch 120/200\n",
      "913/913 [==============================] - 0s 113us/step - loss: 9.3419e-04\n",
      "Epoch 121/200\n",
      "913/913 [==============================] - 0s 94us/step - loss: 9.3213e-04\n",
      "Epoch 122/200\n",
      "913/913 [==============================] - 0s 87us/step - loss: 9.3195e-04\n",
      "Epoch 123/200\n",
      "913/913 [==============================] - 0s 84us/step - loss: 9.3291e-04\n",
      "Epoch 124/200\n",
      "913/913 [==============================] - 0s 80us/step - loss: 9.2941e-04\n",
      "Epoch 125/200\n",
      "913/913 [==============================] - 0s 78us/step - loss: 9.3719e-04\n",
      "Epoch 126/200\n",
      "913/913 [==============================] - 0s 93us/step - loss: 9.3015e-04\n",
      "Epoch 127/200\n",
      "913/913 [==============================] - 0s 96us/step - loss: 9.3583e-04\n",
      "Epoch 128/200\n",
      "913/913 [==============================] - 0s 96us/step - loss: 9.2775e-04\n",
      "Epoch 129/200\n",
      "913/913 [==============================] - 0s 108us/step - loss: 9.3816e-04\n",
      "Epoch 130/200\n",
      "913/913 [==============================] - 0s 106us/step - loss: 9.4006e-04\n",
      "Epoch 131/200\n",
      "913/913 [==============================] - 0s 124us/step - loss: 9.2882e-04\n",
      "Epoch 132/200\n",
      "913/913 [==============================] - 0s 129us/step - loss: 9.2846e-04\n",
      "Epoch 133/200\n",
      "913/913 [==============================] - 0s 127us/step - loss: 9.3744e-04\n",
      "Epoch 134/200\n",
      "913/913 [==============================] - 0s 103us/step - loss: 9.4107e-04\n",
      "Epoch 135/200\n",
      "913/913 [==============================] - 0s 107us/step - loss: 9.3375e-04\n",
      "Epoch 136/200\n",
      "913/913 [==============================] - 0s 112us/step - loss: 9.3793e-04\n",
      "Epoch 137/200\n",
      "913/913 [==============================] - 0s 116us/step - loss: 9.3647e-04\n",
      "Epoch 138/200\n",
      "913/913 [==============================] - 0s 108us/step - loss: 9.2773e-04\n",
      "Epoch 139/200\n",
      "913/913 [==============================] - 0s 119us/step - loss: 9.4440e-04\n",
      "Epoch 140/200\n",
      "913/913 [==============================] - 0s 114us/step - loss: 9.3520e-04\n",
      "Epoch 141/200\n",
      "913/913 [==============================] - 0s 110us/step - loss: 9.2760e-04\n",
      "Epoch 142/200\n",
      "913/913 [==============================] - 0s 118us/step - loss: 9.3574e-04\n",
      "Epoch 143/200\n",
      "913/913 [==============================] - 0s 130us/step - loss: 9.3331e-04\n",
      "Epoch 144/200\n",
      "913/913 [==============================] - 0s 123us/step - loss: 9.3836e-04\n",
      "Epoch 145/200\n",
      "913/913 [==============================] - 0s 126us/step - loss: 9.3007e-04\n",
      "Epoch 146/200\n",
      "913/913 [==============================] - 0s 92us/step - loss: 9.3529e-04\n",
      "Epoch 147/200\n",
      "913/913 [==============================] - 0s 96us/step - loss: 9.2844e-04\n",
      "Epoch 148/200\n",
      "913/913 [==============================] - 0s 89us/step - loss: 9.3392e-04\n",
      "Epoch 149/200\n",
      "913/913 [==============================] - 0s 95us/step - loss: 9.2993e-04\n",
      "Epoch 150/200\n",
      "913/913 [==============================] - 0s 99us/step - loss: 9.4500e-04\n",
      "Epoch 151/200\n",
      "913/913 [==============================] - 0s 95us/step - loss: 9.4839e-04\n",
      "Epoch 152/200\n",
      "913/913 [==============================] - 0s 88us/step - loss: 9.3452e-04\n",
      "Epoch 153/200\n",
      "913/913 [==============================] - 0s 90us/step - loss: 9.3265e-04\n",
      "Epoch 154/200\n",
      "913/913 [==============================] - 0s 96us/step - loss: 9.3631e-04\n",
      "Epoch 155/200\n",
      "913/913 [==============================] - 0s 113us/step - loss: 9.3087e-04\n",
      "Epoch 156/200\n",
      "913/913 [==============================] - 0s 88us/step - loss: 9.3225e-04\n",
      "Epoch 157/200\n",
      "913/913 [==============================] - 0s 79us/step - loss: 9.3121e-04\n",
      "Epoch 158/200\n",
      "913/913 [==============================] - 0s 90us/step - loss: 9.3430e-04\n",
      "Epoch 159/200\n",
      "913/913 [==============================] - 0s 92us/step - loss: 9.4363e-04\n",
      "Epoch 160/200\n",
      "913/913 [==============================] - 0s 79us/step - loss: 9.3729e-04\n",
      "Epoch 161/200\n",
      "913/913 [==============================] - 0s 80us/step - loss: 9.3381e-04\n",
      "Epoch 162/200\n",
      "913/913 [==============================] - 0s 84us/step - loss: 9.3597e-04\n",
      "Epoch 163/200\n",
      "913/913 [==============================] - 0s 83us/step - loss: 9.3426e-04\n",
      "Epoch 164/200\n",
      "913/913 [==============================] - 0s 101us/step - loss: 9.3506e-04\n",
      "Epoch 165/200\n",
      "913/913 [==============================] - 0s 91us/step - loss: 9.4890e-04\n",
      "Epoch 166/200\n",
      "913/913 [==============================] - 0s 87us/step - loss: 9.4155e-04\n",
      "Epoch 167/200\n",
      "913/913 [==============================] - 0s 83us/step - loss: 9.3241e-04\n",
      "Epoch 168/200\n",
      "913/913 [==============================] - 0s 94us/step - loss: 9.3249e-04\n",
      "Epoch 169/200\n",
      "913/913 [==============================] - 0s 120us/step - loss: 9.5235e-04\n",
      "Epoch 170/200\n",
      "913/913 [==============================] - 0s 101us/step - loss: 9.3788e-04\n",
      "Epoch 171/200\n",
      "913/913 [==============================] - 0s 94us/step - loss: 9.4151e-04\n",
      "Epoch 172/200\n",
      "913/913 [==============================] - 0s 93us/step - loss: 9.4701e-04\n",
      "Epoch 173/200\n",
      "913/913 [==============================] - 0s 103us/step - loss: 9.2566e-04\n",
      "Epoch 174/200\n",
      "913/913 [==============================] - 0s 96us/step - loss: 9.3974e-04\n",
      "Epoch 175/200\n",
      "913/913 [==============================] - 0s 97us/step - loss: 9.3483e-04\n",
      "Epoch 176/200\n",
      "913/913 [==============================] - 0s 96us/step - loss: 9.3844e-04\n",
      "Epoch 177/200\n",
      "913/913 [==============================] - 0s 89us/step - loss: 9.3172e-04\n",
      "Epoch 178/200\n",
      "913/913 [==============================] - 0s 96us/step - loss: 9.3238e-04\n",
      "Epoch 179/200\n",
      "913/913 [==============================] - 0s 85us/step - loss: 9.3050e-04\n",
      "Epoch 180/200\n",
      "913/913 [==============================] - 0s 100us/step - loss: 9.3398e-04\n",
      "Epoch 181/200\n",
      "913/913 [==============================] - 0s 102us/step - loss: 9.3003e-04\n",
      "Epoch 182/200\n",
      "913/913 [==============================] - 0s 106us/step - loss: 9.3324e-04\n",
      "Epoch 183/200\n",
      "913/913 [==============================] - 0s 101us/step - loss: 9.4045e-04\n",
      "Epoch 184/200\n",
      "913/913 [==============================] - 0s 97us/step - loss: 9.4571e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 185/200\n",
      "913/913 [==============================] - 0s 96us/step - loss: 9.4081e-04\n",
      "Epoch 186/200\n",
      "913/913 [==============================] - 0s 104us/step - loss: 9.3034e-04\n",
      "Epoch 187/200\n",
      "913/913 [==============================] - 0s 97us/step - loss: 9.3051e-04\n",
      "Epoch 188/200\n",
      "913/913 [==============================] - 0s 116us/step - loss: 9.2820e-04\n",
      "Epoch 189/200\n",
      "913/913 [==============================] - 0s 115us/step - loss: 9.3986e-04\n",
      "Epoch 190/200\n",
      "913/913 [==============================] - 0s 106us/step - loss: 9.3951e-04\n",
      "Epoch 191/200\n",
      "913/913 [==============================] - 0s 102us/step - loss: 9.4413e-04\n",
      "Epoch 192/200\n",
      "913/913 [==============================] - 0s 106us/step - loss: 9.4073e-04\n",
      "Epoch 193/200\n",
      "913/913 [==============================] - 0s 124us/step - loss: 9.3217e-04\n",
      "Epoch 194/200\n",
      "913/913 [==============================] - 0s 109us/step - loss: 9.3294e-04\n",
      "Epoch 195/200\n",
      "913/913 [==============================] - 0s 123us/step - loss: 9.3002e-04\n",
      "Epoch 196/200\n",
      "913/913 [==============================] - 0s 111us/step - loss: 9.3103e-04\n",
      "Epoch 197/200\n",
      "913/913 [==============================] - 0s 114us/step - loss: 9.2774e-04\n",
      "Epoch 198/200\n",
      "913/913 [==============================] - 0s 103us/step - loss: 9.3337e-04\n",
      "Epoch 199/200\n",
      "913/913 [==============================] - 0s 107us/step - loss: 9.3405e-04\n",
      "Epoch 200/200\n",
      "913/913 [==============================] - 0s 94us/step - loss: 9.3153e-04\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x1301e473898>"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_rnn.fit(X_train,y_train, batch_size = 32, epochs = 200)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.models import load_model\n",
    "regressor.save('rnn_zgpa_stock_predict.h5')  # creates a HDF5 file 'my_model.h5'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "result = np.concatenate((y_test_ori,predicted_stock_price),axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "result = pd.DataFrame(result,columns=['real_price','predicted_price'])\n",
    "result.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "result.to_csv('zgpa_predicted.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 股价预测对比\n",
    "\n",
    "![result_comp](images/result_comp.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 输出层激活函数未sigmoid/tanh的预测结果\n",
    "\n",
    "![code_update](images/code_update.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 输出层激活函数未sigmoid/tanh的预测结果\n",
    "\n",
    "![sigmoid_output](images/sigmoid_output.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**预测准确率的局限性:** 无法真实反映模型针对各个分类的预测准确度\n",
    "\n",
    "任务：计算并对比预测模型预测准确率、空准确率\n",
    "\n",
    "空准确率：当模型总是预测比例较高的类别，其预测准确率的数值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**结论:**\n",
    "\n",
    "  分类准确率可以方便的用于衡量模型的整体预测效果，但无法反应细节信息，具体表现在：\n",
    "- 没有体现数据的**实际分布情况**\n",
    "- 没有体现模型**错误预测的类型**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 混淆矩阵\n",
    "\n",
    "又称为误差矩阵，用于衡量分类算法的准确程度"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![confusion_matrix](images/06_confusion_matrix.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**名词解释**\n",
    "\n",
    "- **True Positives (TP):** 预测准确、实际为正样本的数量（实际为1，预测为1）\n",
    "- **True Negatives (TN):** 预测准确、实际为负样本的数量（实际为0，预测为0）\n",
    "- **False Positives (FP):** 预测错误、实际为负样本的数量（实际为0，预测为1）\n",
    "- **False Negatives (FN):** 预测错误、实际为正样本的数量（实际为1，预测为0）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Small confusion matrix](images/09_confusion_matrix_1.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Large confusion matrix](images/09_confusion_matrix_2.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 混淆矩阵指标"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**准确率:** 整体样本中，预测正确样本数的比例\n",
    "- Accuracy = (TP + TN)/(TP + TN + FP + FN)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**精确率:** 预测结果为正的样本中，预测正确的比例\n",
    "- Precision = TP/(TP + FP)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**F1分数:** 综合Precision和Recall的一个判断指标\n",
    "- F1 Score = 2*Precision X Recall/(Precision + Recall)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![confusion matrix_metrics](images/09_confusion_matrix_3.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**结论:**\n",
    "\n",
    "- 分类任务中，相比单一的预测准确率，混淆矩阵提供了**更全面的模型评估信息**\n",
    "- 通过混淆矩阵，我们可以计算出**多样的模型表现衡量指标**，从而更好地选择模型\n",
    "\n",
    "**哪个衡量指标更关键?**\n",
    "\n",
    "- 衡量指标的选择取决于**应用场景**\n",
    "- **垃圾邮件检测** (正样本为 \"垃圾邮件\"): 希望普通邮件（负样本）不要被判断为垃圾邮件（正样本），需要关注**精确率**，希望判断为垃圾邮件的样本都是判断正确的；还需要关注**召回率**，希望所有的垃圾邮件尽可能被判断出来)\n",
    "- **异常交易检测** (正样本为 \"异常交易\"): 希望所有的异常交易都被检测到，即判断为正常的交易中尽可能不存在异常交易，需要关注**特异度**"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
